home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / aminet / mus / edit / amisox_wav.lha / README.amiga < prev    next >
Text File  |  1992-05-14  |  12KB  |  257 lines

  1. -----
  2. BRIEF
  3. -----
  4. Here is my Amiga port of the SoundTools kit, including SOX, the Sound
  5. Exchange.  The original Unix archive is available via anonymous ftp
  6. from wuarchive.wustl.edu:/usenet/alt.sources/articles/517[6-9].Z.  I
  7. have placed all my modifications of the Unix code within #ifdef
  8. delimiters, so the Amiga code should still compile under BSD or SysV
  9. using the original Makefile (Makefile.unix).  Use the Makefile.amiga
  10. to compile for AmigaDOS, or use the supplied shell script if you
  11. don't own a compliant "make" program.
  12.  
  13.  
  14. ---------
  15. NEW STUFF
  16. ---------
  17. Support for Windows 3.1 .WAV support is now included.  Thanks to Bill
  18. Neisius for the WAV driver.  I didn;t have the full patch at the time
  19. I updated the Amiga version to support .WAV, so changes to handlers.c
  20. and everything else are mine (and noted as such--just grep for my
  21. initials).  Changes to incorporate this driver were not machine-
  22. dependent; thus you can compile this Amiga patch on your Sparc or
  23. whatever else and (presto!, big flourish) have .wav support there,
  24. too.
  25.  
  26.  
  27. ---------
  28. COMPILING
  29. ---------
  30. To compile with a good "make" program:
  31. 1.  Copy "Makefile.amiga" to "Makefile".
  32. 2.  Edit the Makefile according to your setup and preferences.
  33.     a. change compiler options to suit your compiler.  CC should
  34.        equal the name of the program you use to compile (e.g.,
  35.        cc for Manx, dcc for DICE, lc for Lattice/SAS).
  36.     b. change O to any flags you use for things like optimization
  37.        or any other specific methods you want implemented by the
  38.        compiler.
  39.     c. ar is a program which provides library maintenance under
  40.        Unix.  It usually requires ranlib, too.  Since you have
  41.        an Amiga, you won't need to deal with it.  Lattice
  42.        this little dealie called "oml" which archives object
  43.        modules as compiler libs, so if you have Lattice set AR
  44.        to "oml" and AR_ARGS to "a" (see your documentation for
  45.        more oml details).  If you don't own Lattice, you might or
  46.        might not have an object module librarian--I'm not
  47.        familiar with any of the other Amiga C compilers.  There
  48.        is, however, a freely distributable librarian available
  49.        over the Internet somewhere, and probably on many BBSes,
  50.        too.  I believe it's by Mike Meyer.  If you use this
  51.        program, set AR and AR_ARGS according to its
  52.        documentation.
  53.     d. RM is the name of a program to delete files you no longer
  54.        need after compile time.  Set it to whatever you use to
  55.        delete things.  I've commented out a few lines of the
  56.        Makefile since c:delete gags if you ask it to delete a
  57.        file that doesn't exist, but if your RM handles
  58.        nonexistent files, feel free to uncomment these.
  59.     e. WILDCARD is a symbol or symbols that your system will
  60.        recognize as representing any sequence of characters,
  61.        including any subsequence of no characters.  The #?
  62.        pair won't work, though, since '#' is the symbol in make
  63.        for a comment.  '*' works on my system, but that's
  64.        probably because I use csh as my shell.
  65.     f. LHA should be set to the name of any Amiga file archiver.
  66.        LHAFLAGS should be whatever archiver flags you like to
  67.        use.  On lha, -a means "preserve file attributes", -x
  68.        means "preserve and use path names", and -Y tells lha not
  69.        to compress anything whose compression ratio would be
  70.        less than 3%.  ARCHIVE should be set to the name of a
  71.        file you want to contain the sox distribution.  I put this
  72.        in mainly for my own amusement, as a counterpart to the
  73.        Unix Makefile's shar: object.  I find, however, that the
  74.        whole concept is quite silly.
  75.     g. If you have a 68881 or a 68882 math coprocessor installed
  76.        in your Amiga (as does every A3000), you'll probably want
  77.        to make the FPU version of sox.  Use of the FPU for
  78.        floating-point intensive operations can speed the
  79.        program's execution on some effects by over 400%.  Remove
  80.        the hash marks in lines 50 and 51 of the Amiga Makefile to
  81.        create the FPU version.  Note that the FPU binary is
  82.        smaller than the non-FPU version, as it contains no
  83.        library code to emulate heavy-duty math functions.  You
  84.        shouldn't need to place hashes in lines 46-47, but if your
  85.        "make" fails, give it a try.
  86. 3.  To make the sox binary according to the specifications in the
  87.     Makefile, enter "make" or "make sox" into your shell (I dearly
  88.     hope no one's still using a vanilla CLI...).  To make only the
  89.     Sound Tools library, enter "make libst.lib".  If you didn't
  90.     change RM and uncomment the line containing "$(RM)", you may need
  91.     to delete any existing libst.lib files in your current directory.
  92.     To remove all the ugly object files that you don't need any more,
  93.     enter "make clean".  Finally, to archive the Amiga SOX basic
  94.     distribution for God-knows-what purpose, enter "make archive".
  95. 4.  Wait for your command prompt.
  96. 5.  Install the new sox binary wherever you keep things like that.
  97.  
  98. To compile without a good make:
  99. 1.  Open a DOS shell, if you don't use it regularly.  (I can't blame
  100.     you if you don't, but I can blame you if you made it hard to get
  101.     get back to it in emergencies.)
  102. 2.  Follow the instructions for using "Make" above, but ignore
  103.     references to Make and Makefile per se, and replace occurences
  104.     of "make" in shell commands with "execute maker".
  105.  
  106.  
  107. -----------
  108. AMIGA NOTES
  109. -----------
  110. Read the file "sox.man.ascii" for general information.  This is a pure
  111. text copy of the troff file "sox.man", though, and as such, it
  112. describes the Unix version.  The following are peculiarities to the
  113. Amiga version:
  114.  
  115. - the ".iff" filename extension and type specifier operates
  116.   identically to the ".8svx" extension
  117. - piping as described in the manual does not work.  I might try to
  118.   fix this, but given the piping means available on the Amiga, it
  119.   could be rough.  The pipe: device should work on everything but
  120.   VOC files as long as you use proper filename extensions or type
  121.   specifications, but I can't see why you'd want to use it anyway.
  122. - The Amiga version of sox incorporates a version string, so typing
  123.   "version sox" should tell you what version of the binary you have.
  124. - If you want to keep libst.lib, you'll have access to most of sox's
  125.   functions through a compiler library as documented in the files
  126.   "st.man" (troff) and "st.man.ascii" (ascii).  Put this in your
  127.   lib: directory if you're interested in it.
  128. - skel stuff, as coded in skel.c and skeleff.c and documented in
  129.   st.man[.ascii], is not yet supported.  Trying to compile it
  130.   under SAS sent out loads of errors, but I didn't think them
  131.   immediately worth fixing since skel*.c is only good for expansion
  132.   using libst.lib.  I may fix these up for a future release.
  133. - The supplied varargs.h is from my local BSD unix machine, and is
  134.   used without permission.
  135.  
  136. And, regarding the Sound Tools library and its documentation
  137. ("st.man" for troff, "st.man.ascii" for ascii):
  138.  
  139. - On the current Unix version of Sound Tools, the library is named
  140.   "libst.a".  Some old documentation refers to it as "libsk.a".
  141.   For the Amiga, replace any occurrence of either of these words
  142.   with "libst.lib", the name of the Amiga library.
  143.  
  144.  
  145. -----
  146. FILES
  147. -----
  148. *.c                     C source code for Sound Tools kit and SOX
  149. *.h                     C header files for ST and SOX
  150. libst.lib               Sound Tools compiler library, non-FPU version
  151. libst881.lib            Sound Tools compiler library, FPU version
  152. Makefile.amiga          Makefile for Amiga version of ST
  153. Makefile.unix           Original Unix Makefile
  154. README                  Original Sound Tools README file
  155. README.amiga            Notes on Amiga port
  156. sox                     Amiga Sound Exchange, non-FPU version
  157. sox.man                 Original Unix SOX manual, (troff format)
  158. sox.man.ascii           Original Unix SOX manual, (ASCII format)
  159. sox881                  Amiga Sound Exchange, FPU version
  160. st.man                  Original Unix Sound Tools Library manual (troff)
  161. st.man.ascii            Original Unix Sound Tools Library manual (ASCII)
  162. TODO                    Things to be done for original Unix distribution
  163.  
  164. I've supplied a number of scripts for making specific conversions
  165. with sox.  These are contained in the archive "scripts.lha", and
  166. further documentation on them is available therein.
  167.  
  168.  
  169. ----------
  170. LAST NOTES
  171. ----------
  172. Windows 3.1 .WAV support is now included; see above.
  173.  
  174. Some channel conversions on IFF-8SVX files require the creation of
  175. a temporary file which by default is written to the t: logical
  176. device.  If you perform any of these conversions, be sure you have
  177. enough free store in t: for such a file.
  178.  
  179. The FPU version of the Sound Tools library, libst881.lib, must be
  180. linked with a 68881/2 library to resolve math coprocessor calls.
  181. For Lattice/SAS C, use lib:lcm881.lib.
  182.  
  183. Some of the .c files compile with type warnings, but the binaries
  184. seem to work fine.  If you have any trouble, please let me know.
  185.  
  186. Not all of the type identifiers are immediately obvious; for example,
  187. the type spec for a ulaw sound is "-t .au", rather than "-t ulaw".
  188. You can find all of the type specs buried inside the file
  189. "handlers.c".
  190.  
  191. The outstanding (only, let's hope) bug in the Amiga version of the
  192. package is that the ami.o module (thus SOX and the libst.lib
  193. routines) does not know how to delete its temp files.  If anyone
  194. can show me a good way to do this (perhaps by walking struct
  195. pointers?), I'd be a happy programmer.
  196.  
  197. When I'm satisfied with the state of the Amiga port, I'll mail it to
  198. the original author, Lance Norskog, in hope that future releases of
  199. and patches to the kit will be Amiga-compatible.
  200.  
  201. (Incidentally, the whole porting project was really relatively easy.
  202. I'm surprised no one else has done it yet.)
  203.  
  204. As with the original Sound Tools package, the Amiga SOX and Sound
  205. Tools Library are freely distributable, but the original code is
  206. copyrighted by Lance Norskog.  Amiga modifications are copyright
  207. David Champion; they may be distributed or modified in any way so
  208. long as a notice to this effect and a concise description of any
  209. changes are included with the distribution.  See the file "README"
  210. for the details on SOX code rights and restrictions.  See "wav.c"
  211. for ownership of the WAV driver.
  212.  
  213. Finally, I suggest that, whenever possible, you use Mike Cramer's
  214. SoundZAP for XXX->IFF conversions; it's generally much faster.  I
  215. do.  The only time I can really justify using SOX is for effects
  216. other than rate changes and for conversions to types other than IFF.
  217.  
  218. ----------------------
  219. CREDITS & AUTHOR STUFF
  220. ----------------------
  221. Thanks to the following folks for help on a few problems I had with
  222. the Amiga's lack of certain functions, and for suggestions on
  223. features to support:
  224.  
  225. caw@miroc.Chi.IL.US (Christopher A. Wichura)
  226. psd1@midway.uchicago.edu (Pratik S. Dave)
  227. epang@sfu.ca (Eugene Pang)
  228. asd2@optima.rh.uchicago.edu
  229. "--SeebS--" <har@ux.acs.umn.edu>
  230. Raul Deluth Miller-Rockwell <rockwell@socrates.umd.edu>
  231. S.Raybould@fulcrum.bt.co.uk
  232. "Edward D. Berger" <eb15+@andrew.cmu.edu>
  233. Jonathan Potter <jpotter@itd.adelaide.edu.au>
  234. Gordon Keener <flash@unx.sas.com>
  235. webbs@mozart.cs.colostate.edu (Steven Webb (The walking glitch))
  236. fnx!del@pilchuck.data-io.com (Dag Erik Lindberg)
  237. robtu@itx.isc.com
  238. wusel@hactar.hanse.de (Kai 'wusel' Siering)
  239. mlelstv@specklec.mpifr-bonn.mpg.de (Michael van Elst)
  240.  
  241. Thanks to bill%solaria@hac2arpa.hac.com (Bill Neisius) for supplying
  242. the .WAV driver, and to Rick Richardson for writing it.
  243.  
  244. If you have any comments on Amiga SOX or on the Sound Tools library,
  245. I may be reached at:
  246.  
  247. David Champion                           Internet E-Mail:
  248. 5326.5 S. Drexel Ave. Apt. 1A
  249. Chicago, IL 60615                        dgc3@midway.uchicago.edu
  250. U.S.A.                                   champion@tira.uchicago.edu
  251. (at least until early summer)
  252.  
  253. See the file "README" for more information on the original
  254. Sound Tools package and its authors.
  255.  
  256. Share and enjoy.
  257.